<?php

/**
 * Modelo manejable de ec_encuesta
 * 
 * @category   menejable
 * @package    modules_models
 * @author     Jose Miguel De Jesus <josejm07@hotmil.com>
 * @copyright  Todos los derechos reservados. Company24h. 2013.
 * 
 * @see        Administrador
 * @since      Version 1.0, revision 1.
 */
class ec_encuesta extends Model
{
	
	protected $_nameTable = "ec_encuesta";

	public function __construct()
	{
		parent::Model();
	} 
        
        /**
         * 
         * @param array $data
         * @return boolean
         */
         public function insert($data)
        { 
            if($this->db->insert($this->_nameTable, $data)){
			return TRUE;
		}
			return FALSE;
		
			
        }
     
        /**
         * @param array $campos
         * @param array $datos
         * @param array $fecha
         * @return array Object
         */
        public function load($campos = FALSE ,$datos = FALSE ,$fecha = FALSE)
        {
          
            $fdesde =$fecha ['fdesde'];
            
            $fhasta =$fecha ['fhasta'];
            
            $con=0;
            
            $contador =0;
            
            $query;
            
            while($contador <= 3):
   
            $this->db->where("fecha_encuesta >", $fdesde); $this->db->where("fecha_encuesta <", $fhasta);

            $this->db->where($campos[$contador],$datos[$con]);
  
            $query[$campos[$contador]][$datos[$con]] = $this->db->count_all_results($this->_nameTable);
  
            $con++; if($con >= 5) {$con = 0; $contador++;}
            
            endwhile;
          
            $query['loadAll']['count'] = $this->loadAll();
            
            $query['encuestas']['fecha']= $this->loadFecha($fdesde,$fhasta);
            
            $query['fechas']['fdesde'] = $fdesde;
            
            $query['fechas']['fhasta'] = $fhasta;
            
            return $query;
          
        }

         /**
          * @return array Object
          */
        public function loadAll()
        {
         
        $query  = $this->db->count_all_results($this->_nameTable);
        
        return $query;
            
        }
        
        /** 
         * 
         * @param $fdesde
         * @param $fhasta
         * @return array Object
         */
        public function loadFecha($fdesde,$fhasta)
        {   
            $this->db->where("fecha_encuesta >=", $fdesde); $this->db->where("fecha_encuesta <=", $fhasta);
            
            $query  = $this->db->count_all_results($this->_nameTable);
            
            return $query;
        }
       
        /**
	 * 
	 * Esta es la funcion que te permite buscar un registro en especifico
	 * @param integer $id
	 */
    public function loadRegistroById($id)
    {
          $query = $this->db->get_where($this->_nameTable, array('idCompany' => $id));
          
          if ($query->num_rows() == 0)
           return false;
           
          return new Contacto_EntregaEncuesta($query->row()); 
    }
        
    
    
     /**
	 * 
	 * @param string fhasta
	 * @param string $fdesde
	 */
    public function encuestasDiaria($fdesde=FALSE ,$fhasta=FALSE)
    {
        
           $con=FALSE;
           
           $fecha = $fdesde;

           $query=array();
           
           while($con == FALSE){
               
           $this->db->like('fecha_encuesta',"$fecha",'after');           
           
           $query[$fecha] = $this->db->count_all_results($this->_nameTable);
           
           if($fecha > $fhasta):
               
               $con = TRUE;
               
           endif;
           
           $fecha = date("Y-m-d", strtotime("$fecha +1 day"));//suma un dia 
           
           }
           
           return $query ; 
        
        
    }
    
    /**
        * @return int
        */
        public function getCount($where)
	{
		return count($this->loadRegistroByWhere($where));
	}
        
        /**
	 * 
	 * Esta es la funcion que te permite buscar un registro.
	 * @param array $where
	 */
	public function loadRegistroByWhere($where)
	{
		$query = $this->db->get_where($this->_nameTable, $where);
		return $this->QueryResult($query);
	}
        
        /**
	 * 
	 * 
	 * @param objeto $resurt
	 */
	private function QueryResult($resurt)
	{
		
		   if($resurt->num_rows() == 0){
		       return FALSE;
		    }
			
			$registro_array = array();
			
			foreach ($resurt->result() as $record){
				$registro_array[] = new Contacto_EntregaEncuesta($record);
			}
			return $registro_array;
		
	}
    
        
        }

 /**
  * Entidad de ec_encuesta
  * 
  * @category   menejable
  * @package    modules_models
  * @author     Jose Miguel De Jesus <josejm07@hotmil.com>
  * @copyright  Todos los derechos reservados. Company24h. 2013.
  * 
  * @see        Administrador
  * @since      Version 1.0, revision 2.
  */
class Contacto_EntregaEncuesta
{
 
  /**
   * @var int
   * @access private 
   */	 
    private $_idEncuesta;
    
  /**
   * @var int
   * @access private 
   */	  
    private $_idCompany;
    
  /**
   * @var string
   * @access private 
   */	 
    private $_comentario;
    
  /**
   * @var string
   * @access private 
   */	  
    private $_usuario;
   
  /**
   * @var date
   * @access private 
   */	   
    private $_fechaEncuesta;
    
  /**
   * @var string
   * @access private 
   */	   
    private $_ptSatisfaccion;
   
  /**
   * @var string
   * @access private 
   */	   
    private $_ptCalidad;
   
  /**
   * @var string
   * @access private 
   */	   
    private $_ptTiempo;
    
  /**
   * @var string
   * @access private 
   */	 
    private $_ptCortesia;
  
  /**
   * @var string
   * @access private 
   */	   
    private $_usuarioInbound;
    
    
    /**
     * @param  object $objeto
     */
    public function __construct($objeto)
	  {
        $this->setIdEncuesta($objeto->id_encuesta);
        $this->setIdCompany($objeto->idCompany);
        $this->setComentario($objeto->comentario);
        $this->setUsuario($objeto->usuario);
        $this->setFechaEncuesta($objeto->fecha_encuesta);
        $this->setPtSatisfaccion($objeto->pt_satisfaccion);
        $this->setPtCalidad($objeto->pt_calidad);
        $this->setPtTiempo($objeto->pt_tiempo);
        $this->setPtCortesia($objeto->pt_cortesia);
        $this->setUsuarioInbound($objeto->usuario_inbound);
          }
          
         /**
          * @return int
          */     
          public function getIdEncuesta() {
              return $this->_idEncuesta;
          }

          /**
          * @return int
          */ 
          public function getIdCompany() {
              return $this->_idCompany;
          }

          /**
          * @return string
          */ 
          public function getComentario() {
              return $this->_comentario;
          }
 
          /**
          * @return string
          */ 
          public function getUsuario() {
              return $this->_usuario;
          }

          /**
          * @return date
          */ 
          public function getFechaEncuesta() {
              return $this->_fechaEncuesta;
          }

          /**
          * @return string
          */ 
          public function getPtSatisfaccion() {
              return $this->_ptSatisfaccion;
          }

          /**
          * @return string
          */ 
          public function getPtCalidad() {
              return $this->_ptCalidad;
          }

          /**
          * @return string
          */ 
          public function getPtTiempo() {
              return $this->_ptTiempo;
          }

          /**
          * @return string
          */ 
          public function getPtCortesia() {
              return $this->_ptCortesia;
          }

          /**
          * @return string
          */ 
          public function getUsuarioInbound() {
              return $this->_usuarioInbound;
          }

         /**
          * @param int $idEncuesta
          */ 
          public function setIdEncuesta($idEncuesta) {
              $this->_idEncuesta = $idEncuesta;
          }

          /**
          * @param int $idCompany
          */ 
          public function setIdCompany($idCompany) {
              $this->_idCompany = $idCompany;
          }

          /**
          * @param int $comentario
          */ 
          public function setComentario($comentario) {
              $this->_comentario = $comentario;
          }

          /**
          * @param int $usuario
          */ 
          public function setUsuario($usuario) {
              $this->_usuario = $usuario;
          }

          /**
          * @param int $fechaEncuesta
          */ 
          public function setFechaEncuesta($fechaEncuesta) {
              $this->_fechaEncuesta = $fechaEncuesta;
          }

         /**
          * @param int $ptSatisfaccion
          */           
          public function setPtSatisfaccion($ptSatisfaccion) {
              $this->_ptSatisfaccion = $ptSatisfaccion;
          }

          /**
          * @param int $ptCalidad
          */ 
          public function setPtCalidad($ptCalidad) {
              $this->_ptCalidad = $ptCalidad;
          }

          /**
          * @param int $ptTiempo
          */ 
          public function setPtTiempo($ptTiempo) {
              $this->_ptTiempo = $ptTiempo;
          }

          /**
          * @param int $ptCortesia
          */ 
          public function setPtCortesia($ptCortesia) {
              $this->_ptCortesia = $ptCortesia;
          }

          /**
          * @param int $usuarioInbound
          */ 
          public function setUsuarioInbound($usuarioInbound) {
              $this->_usuarioInbound = $usuarioInbound;
          }


}
        


?>